.TH std::sub_match 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::sub_match \- std::sub_match

.SH Synopsis
   Defined in header <regex>
   template< class BidirIt >  \fI(since C++11)\fP
   class sub_match;

   The class template std::sub_match is used by the regular expression engine to denote
   sequences of characters matched by marked sub-expressions. A match is a [begin, end)
   pair within the target range matched by the regular expression, but with additional
   observer functions to enhance code clarity.

   Only the default constructor is publicly accessible. Instances of std::sub_match are
   normally constructed and populated as a part of a std::match_results container
   during the processing of one of the regex algorithms.

   The member functions return defined default values unless the matched member is
   true.

   std::sub_match inherits from std::pair<BidirIt, BidirIt>, although it cannot be
   treated as a std::pair object because member functions such as assignment will not
   work as expected.

.SH Type requirements

   -
   BidirIt must meet the requirements of LegacyBidirectionalIterator.

.SH Specializations

   Several specializations for common character sequence types are provided:

   Defined in header <regex>
   Type             Definition
   std::csub_match  std::sub_match<const char*>
   std::wcsub_match std::sub_match<const wchar_t*>
   std::ssub_match  std::sub_match<std::string::const_iterator>
   std::wssub_match std::sub_match<std::wstring::const_iterator>

.SH Member types

   Member type     Definition
   iterator        BidirIt
   value_type      std::iterator_traits<BidirIt>::value_type
   difference_type std::iterator_traits<BidirIt>::difference_type
   string_type     std::basic_string<value_type>

.SH Member objects

   bool matched Indicates if this match was successful
                \fI(public member object)\fP

Inherited from std::pair

   BidirIt first  Start of the match sequence.
                  \fI(public member object)\fP
   BidirIt second One-past-the-end of the match sequence.
                  \fI(public member object)\fP

.SH Member functions

    This section is incomplete
    Reason: Apply LWG 3204, add the swap() member function

   constructor          constructs the match object
                        \fI(public member function)\fP
.SH Observers
   length               returns the length of the match (if any)
                        \fI(public member function)\fP
   str                  converts to the underlying string type
   operator string_type \fI(public member function)\fP
   compare              compares matched subsequence (if any)
                        \fI(public member function)\fP

.SH Non-member functions

   operator==
   operator!=
   operator<
   operator<=
   operator>
   operator>=         compares a sub_match with another sub_match, a string, or a
   operator<=>        character
   (removed in C++20) \fI(function template)\fP
   (removed in C++20)
   (removed in C++20)
   (removed in C++20)
   (removed in C++20)
   (C++20)
   operator<<         outputs the matched character subsequence
                      \fI(function template)\fP

.SH See also

   regex_token_iterator iterates through the specified sub-expressions within all regex
   \fI(C++11)\fP              matches in a given string or through unmatched substrings
                        \fI(class template)\fP

.SH Category:
     * Todo with reason
